Virtual machines, that is, programs that emulate physical computers, can be stored, along with guest operating systems and programs running on the guest operating system, as virtual-machine images. Virtual machine images are files and, as such, can be stored, replicated, and transferred. Thus, when a virtual machine has been successfully created or updated, instances of it can be distributed, e.g., to other physical hosts. Since virtual-machine images can include programs and data associated with guest operating systems and applications, they can be quite large and, thus, consume a lot of network bandwidth as they are transferred. One of the challenges addressed herein is to reduce the bandwidth consumed by transferring virtual-machine images and other disk images.